Understanding SoTA Language Models (BERT, RoBERTA, ALBERT, ELECTRA)
大家好,现在有大量的语言模型!其中许多都有自己独特的学习“自监督”语言表示的方式,可供其他下游任务使用。在本文中,我决定总结当前的趋势并分享一些关键见解,以将所有这些新方法粘合在一起。😃(幻灯片来源:Delvin 等人,斯坦福 CS224n)问题:上下文无关/原子词表示我们在上一篇文章中从上下文无关方法开始,例如 word2vec、GloVE 嵌入。这些方法的缺点是它们不考虑句法上下文。例如“开立银行账户”与“在河岸上”。单词 bank 的含义取决于单词所处的上下文。解决方案 #1:上下文单词表示借助 ELMo,社区开始构建前向(从左到右)和后向(从右到左)序列语言模型,并使用从这两个模型(连
Your Questions, My Answers on Stanford's Graduate AI Certification
最近,我被问到了很多关于斯坦福在线课程的问题,以及为什么有人会在众多在线课程中选择斯坦福在线课程。我试图将它们整合在一起,以帮助更广泛的受众。1. 你如何选择课程?这取决于你的目标和兴趣。以下是一些要问的问题。目标:你想从一门课程中得到什么?你是为了好玩而学习,还是想运用知识来构建一些东西?你想扩展/转换职业,成为一名深度学习从业者吗?你认为这些工具能帮助你解决实际问题吗?兴趣:浏览课程页面,找出它们涵盖的主题,并搜索与之相关的应用程序/项目。这些主题感兴趣吗?以下是我对一些课程的评论,可帮助你入门。2. 课程参考资料?斯坦福的大多数课程都是独立的,但欢迎你阅读和研究资源,大多数主题都有大量文
Review : Stanford's Online Artificial Intelligence Courses - Deep Learning and Machine Learning
你好!我已经入读斯坦福大学并在网上学习他们的课程。以下是我目前所学课程的一些看法。CS224n - 自然语言处理与深度学习 (Manning 教授)难度:4/5 (中等)预期内容:了解应用于 NLP 的最先进的 (SoTA) 深度学习技术。关键主题:问答文本摘要词性标记序列到序列模型Transformers为您提供了NLP发展方向的非常好的概述,家庭作业很有挑战性,但允许您实现最新的神经架构来解决各种语言问题。我的课堂项目:BertQA(github上99*颗星)- 荣获班级最佳项目奖CS231n - 用于视觉识别的卷积神经网络(Li教授和Justin Johnson)难度:4/5(中等)预期
Future of Natural Language Processing with Deep Learning (NLP/DL)
我最近参加了 Kevin Clarke (CS224n) 的演讲,他在演讲中谈到了 NLP 的未来趋势。我写这篇文章是为了总结和讨论最近的趋势。幻灯片片段来自他的客座演讲。有两个主要主题奠定了深度学习 NLP 的趋势:1. 使用无监督 / 未标记数据进行预训练2. OpenAI GPT-2 突破1. 使用无监督 / 未标记数据进行预训练监督数据昂贵且有限,我们如何使用无监督数据来补充训练和监督微调以做得更好?让我们将其应用于机器翻译的问题,看看它如何有所帮助 - 如果您有 2 个不同语言的文本语料库(转录或维基百科文章),没有跨语言映射。我们可以将其用于预训练,在两个语料库上分别训练编码器和解
The evolution of Natural Language Models (NLM) - Must know NLP Basics
我决定浏览一些 NLP(自然语言处理)领域的突破性论文,并总结我的学习成果。这些论文的日期从 2000 年代初到 2018 年。资料来源 - KDNuggets如果您是 NLP 领域的新手 - 我建议您从阅读这篇文章开始,其中涉及各种 NLP 基础知识。1. 神经概率语言模型2. 向量空间中单词表示的有效估计Word2Vec - Skipgram 模型3. 单词和短语的分布式表示及其组合4. GloVe:用于单词表示的全局向量5. 基于循环神经网络的语言模型6. 循环神经网络语言模型的扩展让我们从#1 开始,神经概率语言模型Bengio 等人。提出一种分布式单词表示法来对抗维数灾难。维数灾难源
Primer on the math of Machine Learning
1.向量的点积(内积或标量积)2个向量a和b的点积定义为:aT . b ,也可以表示为bT 。 a两个向量 a = [a1, a2, …, an] 和 b = [b1, b2, …, bn] 的点积定义为:{\displaystyle \mathbf {\color {red}a} \cdot \mathbf {\color {blue}b} =\sum _{i=1}^{n}{\color {red}a}_{i}{\color {blue}b}_{i}={\color {red}a}_{1}{\color {blue}b}_{1}+{\color {red}a}_{2}{\color {blu
A friendly introduction to Generative Adversarial Networks
到目前为止,我们一直在讨论判别模型,它将输入特征 x 映射到标签 y 并近似 P(y/x)——贝叶斯定律。生成模型则相反,它们试图根据标签预测输入特征。假设给定的标签是 y,我们看到某些特征 x 的可能性有多大。它们近似 P(x 和 y) 的联合概率。来源:Medium / CycleGAN生成对抗网络 (GAN)来源:O'ReillyGAN 的组成部分:1. 生成器——这是一个逆 CNN,当我们沿着 CNN 链前进并在输出处提取特征时,该网络不会压缩信息,而是将随机噪声作为输入特征并在其输出处生成图像。2. 鉴别器——鉴别器是一个 CNN,它查看来自训练集和生成器输出的图像,并将它们分类为真
Normal Equation Algorithm for minimizing cost J
梯度下降提供了一种最小化 J 的方法。第二种方法,这次明确地执行最小化,而不诉诸迭代算法。在“正则方程”方法中,我们将通过明确取其对 θj 的导数并将其设置为零来最小化 J。这使我们能够在不进行迭代的情况下找到最佳 theta。正态方程公式如下:\theta = (X^T X)^{-1}X^T yθ=(XTX)−1XTy使用正态方程不需要进行特征缩放。以下是梯度下降和正态方程的比较:梯度下降正态方程需要选择alpha不需要选择alpha需要多次迭代不需要迭代O (kn^2kn2)O (n^3n3),需要计算X^TX的逆XTX在n很大时效果很好如果n非常大则速度很慢使用正态方程,计算逆的复杂度为
Understanding Convolutional Neural Networks (CNN) with an example
完成 Coursera 深度学习专业课程 #4 后,我想写一个简短的总结来帮助大家理解/复习卷积神经网络 (CNN) 的概念。让我们通过一个例子来理解 CNN - 图 1。CNN 示例 - 来源:Coursera DL Specialization假设您有一个 32x32 的图像,其中包含从 0 到 10 的数字,具有 3 个通道 (RGB)。您将它通过第一个卷积层 (CL1) 中大小为 f 的过滤器。过滤器的输出图像的大小是多少?输出图像的大小通过以下公式计算:来源:Medium 在我们的例子中,假设填充为 0 且步幅为 1。上述公式得出图像的高度和宽度的输出大小均为 28x28。好吧,这是
Optimization Algorithms for Machine Learning
我一直在 Coursera 上学习 Andrew Ng 的深度学习专项课程。我已经完成了该专项课程 5 门课程中的第 1 门(神经网络和深度学习)。我正在学习第 2 门课程,即改进深度学习。这是一门非常有趣的课程,深入探讨了超参数调整、正则化和优化技术。1. 什么是优化算法?它们使您能够更快地训练神经网络,因为应用机器学习是一个非常经验的过程,这些算法有助于有效地达到优化结果。让我们开始研究具有更复杂版本的梯度下降的优化算法。1.1 批量与小批量梯度下降一般来说,梯度下降会遍历整个训练示例集(#m),并向全局最小值迈出一步。这也称为批量梯度下降。这有点低效,因为它要求我们先遍历所有训练示例,然
Non-linear Activation Functions for Neural Networks Simplified
激活函数是形成神经元输出的函数。它为预测添加了非线性,并使基于神经网络的预测器比线性模型好得多。我们通常会问自己应该使用哪种激活函数?答案是,这个问题没有一个万能的答案。这取决于具体情况。让我带您了解最常用的激活函数及其优缺点,以帮助您做出更好的决定。我们可以定义自己的激活函数以最好地满足我们的需求,最常用的激活函数是:1. S 型激活函数 2. Tan 双曲激活函数 3. ReLU(整流线性单元) 4. Leaky ReLU 它们每个的样子如下:图片来源:DeepLearning.ai 专业化 1. S 型激活函数 S 型激活函数的范围在 0 到 1 之间。它看起来像我们在不同研究领域中看到
Word2Vec explained - Assignment #5 - Udacity Deep Learning Course by Google
嗨,我确实对向量空间的工作原理有很好的理解(这要感谢我在本科和研究生院学到的所有数学知识)。但是,Udacity 深度学习课程的作业 #5 具有挑战性,它需要可视化和理解一组向量如何成功(或几乎)表示单词的概念,同时将它们并排阅读为上下文。在尝试解决作业之前,我观看了几个视频并在线阅读了大量资料。让我先用一个例子来解释这个概念。考虑一下这句话:汤米狗是我最好的朋友。作为人类,我们的理解是,这句话指的是一只名叫汤米的狗,它是作家/作者最好的朋友。你如何通过数学让机器理解这一点?答案:嵌入将上述句子中的每个单词想象成你用于关联的云 - 我想到的可视化是:<汤米><狗><最好的朋友> - 其中<>代
Complexity of Linear Regression related to Neural Networks
Udacity 深度学习课程的作业 #1 让你了解到,逻辑多项式(线性)回归模型可能无法提供非 MNIST 数据集分类问题所需的最佳准确度。让我们将逻辑多项式模型视为一种算法,并尝试计算它的复杂度。这里要考虑的两个参数是 W - 权重矩阵和 b - 具有 1 层的偏差矩阵。想象一下,输入图像是 28x28 图像,输出是 10 类向量。输入图像将被拉伸为输入到每个单元的单个像素。这使得输入层尺寸为 28x28。参数 W 的尺寸变为 (28x28)x10,它被添加到 10x1 偏差矩阵中。参数总数为:28x28x10+10 = (N+1)*K,其中 N 是输入数,K 是输出数。另一种理解方式是 -
Loss Function with Cross Entropy made simple
我在 Google 的 Udacity 深度学习课程上找到了这个。 我将详细说明这些笔记,以帮助您更好地理解这个概念。 符号:D(S,L)是交叉熵L是用于训练的标签S(Y)是多项逻辑分类的每个类的概率的 softmax 输出。 为什么叫多项逻辑分类? 让我们看下面的图,有一个输入向量 X,我们用它来训练线性模型,也称为逻辑回归模型 - Wx + b。 这会产生 logit,也就是分数 Y,它进一步输入到 softmax 激活中以获得概率输出。 线性二元分类称为二项式逻辑分类。多项式表示有超过 2 个类(与二项式或二元分类相比)。-------------让我们帮助您理解交叉熵的数学。 它基本上
A very good read to understand Convolutional Neural Networks
我将对此进行总结,并随着时间的推移在其上添加更多细节,但与此同时,我强烈建议您浏览此链接 :)https://www.analyticsvidhya.com/blog/2017/06/architecture-of-convolutional-neural-networks-simplified-demystified/
[Google Cloud] Setup Instructions for FastAI 2018 Deep Learning Course - Open source library
在我之前的博客文章之后,我在线观看了 Jeremy Howard 的 FastAI 深度学习讲座。这是 2018 年深度学习版课程的链接 - 它完全免费,并且通过“实践”深入概念细节,提供了对实用深度学习的深刻见解。该课程的 FastAI 库是在 Pytorch 之上构建的,并提供了一个很好的顶级 API,可在几分钟内开始创建您的深度学习模型!设置库很困难,因为它依赖于不同的软件包版本,并且由于更新构建它的软件包而导致损坏。我将列出我为启动和运行它而遵循的设置。1. 按照 Medium.com 上的指南在 Google Cloud 上设置 Google 计算单元2. 我遇到的问题是 curl
Study plan for ML and Deep Learning ventures
大家好!我制定了一个学习计划,我想通过查阅大量在线资源来执行这个计划(查看下面的资源和参考资料)。我是一名全职计算机工程师,下班后会继续研究我的机器学习兴趣。平衡时间很难,但有志者事竟成 :) 我知道要为我的计划投入大量时间会很困难,我打算每天晚上平均花 2 个小时学习,并调整我的时间表以优化工作效率。去年我已经完成了 Andrew Ng 的 Coursera 机器学习课程,但我将在执行这个计划的过程中分配时间进行复习。第 1 个月:FastAI 深度学习第 1 部分(正在进行中)第 2 个月:FastAI 深度学习第 2 部分第 3-5 个月:Udacity 深度学习纳米学位课程我将指导你们